package com.code.generator.db;

import java.sql.Connection;
import java.util.List;

import com.code.generator.entity.ColumnsEntity;
import com.code.generator.entity.TableEntity;


/**
 * 数据库连接接口
 *
 *
 * @author 朱国军
 * @version 2015年3月13日 朱国军
 */
public interface DataBaseConnection {
    /**
     * 获取数据库连接
     *
     * @param dbUser 数据库用户名
     * @param dbPassword 数据库密码
     * @param dbDriver 数据库驱动
     * @param dbUrl 数据库地址
     * @return 数据库连接
     * @throws Exception 代码生成器异常
     *
     */
    public Connection getConnection(String dbUser, String dbPassword, String dbDriver, String dbUrl) throws Exception;


    /**
     * 获取数据库字段信息列表
     *
     * @param conn 数据库连接
     * @param tableName 表名
     * @param dbUser 数据库用户名
     * @return 字段详细信息
     * @throws Exception 代码生成器异常
     */
    public List<ColumnsEntity> getColumnsEntity(Connection conn, String tableName, String dbUser) throws Exception;


    /**
     * 获取数据库表信息
     *
     * @param conn 数据库连接
     * @param tableName 表名
     * @return 数据库表信息
     * @throws Exception 代码生成器异常
     *
     */
    public TableEntity getTableEntity(Connection conn, String tableName) throws Exception;
}
